home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 11 / Cream of the Crop 11-2.iso / extra_2 / nadir11.zip / LOAD.N < prev    next >
Text File  |  1995-11-08  |  7KB  |  198 lines

  1. If(0)
  2. 0----+----1----+----2----+----3----+----4----+----5---
  3.                                                         0
  4.   [ ] univ                               [   OK   ]     1
  5.   [ ] mdat                                              2
  6.   [ ] parm                               [ Cancel ]     3
  7.   [ ] data                                              4
  8.                                                         5
  9.   Data Filename : xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    6
  10.                                                         7
  11.   Output File   : xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    8
  12.                                                         9
  13.   Block Size    : 9999                                  10
  14.                                                         11
  15.   Report every  : 999  Symbols                          12
  16.  
  17. Endif
  18. Define UnloadSetup()
  19. {
  20.     glob^table^letter^["univ"] = "u";
  21.     glob^table^letter^["mdat"] = "m";
  22.     glob^table^letter^["parm"] = "p";
  23.  
  24.     glob^table^name^["u"] = "univ";
  25.     glob^table^name^["m"] = "mdat";
  26.     glob^table^name^["p"] = "parm";
  27.     glob^table^name^["d"] = "data";
  28. }
  29. Define UnloadSymbolsScreen(type, title, 
  30.                            tableLetter, tableName, dmpName, blkSize, repCnt)
  31. /*
  32.     type = 0 for unload, = 1 for load
  33. */
  34. {
  35.     scr = SdCreate(, -1, -1, type ? 14 : 12, 54, title);
  36.     SdRadio (scr, "rad", 1, 1, 2, 12, &tableLetter, "Univ", "u", 131);
  37.     SdRadio (scr, "", 1, 2, 2, 12, &tableLetter, "Mdat", "m", 131);
  38.     SdRadio (scr, "", 1, 3, 2, 12, &tableLetter, "Parm", "p", 131);
  39.     SdRadio (scr, "", 1, 4, 2, 12, &tableLetter, "Data", "d", 132);
  40.     SdPrompt(scr, 6, 2, "Data Filename");
  41.     SdPrompt(scr, 6,16, ":");
  42.     SdString(scr, "inf",  tableLetter == "d",  6, 18, 33, &tableName, 64);
  43.     SdPrompt(scr, 8, 2, type ? "Input File" : "Output File");
  44.     SdPrompt(scr, 8,16, ":");
  45.     SdString(scr, "out",  1,  8, 18, 33, &dmpName, 64);
  46.     if (type) {
  47.         SdPrompt(scr,10, 2, "Block Size");
  48.         SdPrompt(scr,10,16, ":");
  49.         SdInt   (scr, "bsiz",  1, 10, 18,  4, &blkSize);
  50.         row = 12;
  51.     }
  52.     else
  53.         row = 10;
  54.  
  55.     SdPrompt(scr,row, 2, "Report every");
  56.     SdPrompt(scr,row,16, ":");
  57.     SdInt   (scr, "rev",  1, row, 18,  3, &repCnt);
  58.     SdPrompt(scr,row,23, "symbols");
  59.  
  60.     SdButton(scr, "", 1,    1, 41, 10, "OK",     "", 1);
  61.     SdButton(scr, "", 1,    3, 41, 10, "Cancel", "", 2);
  62.  
  63.     while (1) {
  64.         if ((cmd = SdEdit(scr, cursor)) == 2 || cmd == 3) {
  65.             break;
  66.         }
  67.         else if (cmd == 1) {
  68.             SdUpdate(scr);
  69.             if (!tableLetter) {
  70.                 MsgWait(title, "Must choose source Symbol Table");
  71.                 cursor = "sym";
  72.             }
  73.             else if (tableLetter == "d" && !tableName) {
  74.                 MsgWait(title, "For Data, must specify a Data Filename");
  75.                 cursor = "inf";
  76.             }
  77.             else if (!dmpName) {
  78.                 MsgWait(title, "Must specify an " . 
  79.                                (type ? "Input" : "Output") . " Filename");
  80.                 cursor = "out";
  81.             }
  82.             else {
  83.                 break;              /* every thing validates */
  84.             }
  85.         }
  86.         else if (cmd == 131) {
  87.             SdModeSet(scr, 0, "inf");
  88.             cursor = "rad";
  89.         }
  90.         else if (cmd == 132) {
  91.             SdModeSet(scr, 1, cursor = "inf");
  92.             cursor = "rad";
  93.         }
  94.     }
  95.     SdDestroy(scr);
  96.     return cmd;
  97. }
  98. Define UnloadSymbols()
  99. {
  100.     title = "Unload Symbol Table";
  101.  
  102.     UnloadSetup();
  103.  
  104.     repCnt = 100;           /* default reporting count */
  105.  
  106.     while (1) {
  107.         if (UnloadSymbolsScreen(0, title, &tableLetter, &tableName, 
  108.                                 &dmpName, &blkSize, &repCnt) != 1)
  109.             return;
  110.         if (!(dmpFile = FileOpen(dmpName, "write"))) {
  111.             MsgWait(title, "Could not open Output File " . dmpName);
  112.             continue;
  113.         }
  114.         table = glob^table^name^[tableLetter];
  115.         if (tableLetter == "d" && SymOpen("data", tableName)) {
  116.             MsgWait(title, "Could not open Symbol Table " . tableName);
  117.             continue;
  118.         }
  119.         break;  
  120.     }
  121.     SymUnload(table, dmpName, , repCnt, &symCnt);
  122.     MsgWait("Unload Symbols " . table, symCnt . " symbols unloaded");
  123.     if (tableLetter == "d")
  124.         Signal("");             // to restart system
  125. }
  126. Define LoadSymbols()
  127. {
  128.     title = "Load Symbol Table";
  129.  
  130.     UnloadSetup();
  131.     repCnt = 100;           /* default reporting count */
  132.     blkSize = 512;
  133.  
  134.     while (1) {
  135.         if (UnloadSymbolsScreen(1, title, &tableLetter, &tableName, 
  136.                                 &dmpName, &blkSize, &repCnt) != 1)
  137.             return;
  138.         if (!(dmpFile = FileOpen(dmpName, "read"))) {
  139.             MsgWait(title, "Could not open Input File " . dmpName);
  140.             continue;
  141.         }
  142.         FileClose(dmpFile);
  143.         table = glob^table^name^[tableLetter];
  144.         if (tableLetter == "d" && SymOpen("data", tableName, , 8) &&
  145.             SymCreate("data", tableName, "Excl", blkSize, 12)) {
  146.             MsgWait(title, "Could not open or create Symbol Table " . tableName);
  147.             continue;
  148.         }
  149.         break;  
  150.     }
  151.     SymLoad(table, dmpName, , repCnt, &symCnt);
  152.     MsgWait("Load Symbols " . table, symCnt . " symbols loaded");
  153.     if (tableLetter == "d")
  154.         Signal("");             // to restart system
  155. }
  156. Define UnloadTable(tableName, dmpName)
  157. /*
  158.     This is a non interactive one that could be used from the command line.
  159.     eg
  160.         n -p"UnloadTable(univ.dat,\tmp\univ.dmp)"
  161. */
  162. {
  163.     SymClose("univ");               /* close all files */
  164.     SymClose("parm");               /* we may be unloading one of them */
  165.     SymClose("mdat");
  166.     SymClose("mlib");
  167.     SymClose("data");
  168.  
  169.     if (SymOpen("data", tableName))
  170.         Signal("Could not open Symbol Table " . tableName);
  171.  
  172.     SymUnload("data", dmpName, , 100, &symCnt);
  173.     Print(symCnt, " symbols unloaded\n");
  174.     Signal("");                     /* restart the system */
  175. }
  176. Define LoadTableReport(name, symCnt)
  177. {
  178.     Print(symCnt, "\r");
  179. }
  180. Define LoadTable(tableName, dmpName, blkSize)
  181. {
  182.     SymClose("univ");               /* close all files */
  183.     SymClose("parm");               /* we may be loading one of them */
  184.     SymClose("mdat");
  185.     SymClose("mlib");
  186.     SymClose("data");
  187.  
  188.     if (!blkSize)
  189.         blkSize = 512;              /* The default block size */
  190.  
  191.     if (SymOpen("data", tableName, , 8)
  192.         && SymCreate("data", tableName, "Excl", blkSize, 8))
  193.         Signal("Could not open or create Symbol Table " . tableName);
  194.  
  195.     SymLoad("data", dmpName, , 100, &symCnt);
  196.     Print(symCnt, " symbols loaded\n");
  197. }
  198.